The present disclosure relates generally to computer systems and, in particular, to systems and methods for scheduling on parallel machines including multi-level preemption.”
High performance computing platforms such as mainframe or cluster computers are used for computationally intensive operations. Nearly all mainframes have the ability to run (or host) multiple operating systems and thereby operate not as a single computer but as a number of virtual machines. In this role, a single mainframe can replace dozens or even hundreds of smaller servers, reducing management and administrative costs while providing greatly improved scalability and reliability.
Mainframes or clusters may include many (hundreds or even thousands) of central processing units (CPU's). Each CPU contained in a mainframe or cluster computer shall be referred to herein as a “node.” A node, as the term is used herein, is not limited to CPU and may be any microprocessor and could be contained, for example, in a personal computer.
Mainframes or clusters are designed to handle very high volume input and output (I/O) and emphasize throughput computing. Since the mid-1960s, mainframe designs have included several subsidiary computers (called channels or peripheral processors) which manage the I/O devices, leaving the CPU free to deal only with high-speed memory. In addition, clustered machines (that is, a group of computers clustered together) may also allow high volume input and output.